<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>

    //1
    var instance = null

    function Tank() {
        this.dom = null
        this.speed = 0
        this.color = ''
        this.run = function () { }
    }
    return {
        obj: function () {
            if (instance) {//如果已经实例化了一个对象
                return instance;//已经实例化的那个对象, 不再重新创建对象
            } else {
                return instance = new Tank();//创建一个新对象 , 返回
            }
        }
    }


    //2
    (function(){
            function Tank(){
                this.dom = null;//保存dom节点
                this.speed = 0;//速度
                this.color = '';//颜色
                this.run = function(){}
            }

            var instance = null;//保存实例化的对象
   
            function getInstance(){
                return instance || (instance = new Tank())
            }

            window.SingleTon = { getInstance };
            //给window对象添加一个属性( 将 SingleTon 暴露到外部)
            //window对象身上的所有属性 在使用的时候 都可以省略 window. 前缀
            
        })()


        //3
        

</script>